<?php
/*  PHP RSS Reader v1.1
	By Richard James Kendall 
	Bugs to richard@richardjameskendall.com 
	Free to use, please acknowledge me 
	
	Place the URL of an RSS feed in the $file variable.
	
	The $rss_channel array will be filled with data from the feed,
	every RSS feed is different by by and large it should contain:
	
	Array {
		[TITLE] = feed title
		[DESCRIPTION] = feed description
		[LINK] = link to their website
		
		[IMAGE] = Array {
					[URL] = url of image
					[DESCRIPTION] = alt text of image
				}
		
		[ITEMS] = Array {
					[0] = Array {
							[TITLE] = item title
							[DESCRIPTION] = item description
							[LINK = a link to the story
						}
					.
					.
					.
				}
	}
	
	By default it retrives the Reuters Oddly Enough RSS feed. The data is put into the array
	structure so you can format the information as you see fit.
*/

function startElement($parser, $name, $attrs)
{
	global $rss_channel, $currently_writing, $main;
	switch($name) {
		case "RSS":
		case "RDF:RDF":
		case "ITEMS":
			$currently_writing = "";
			break;
		case "CHANNEL":
			$main = "CHANNEL";
			break;
		case "IMAGE":
			$main = "IMAGE";
			$rss_channel["IMAGE"] = array();
			break;
		case "ITEM":
			$main = "ITEMS";
			break;
		default:
			$currently_writing = $name;
			break;
	}
}

function endElement($parser, $name)
{
	global $rss_channel, $currently_writing, $item_counter;
	$currently_writing = "";
	if ($name == "ITEM") {
		$item_counter++;
	}
}

function characterData($parser, $data)
{
	global $rss_channel, $currently_writing, $main, $item_counter;
	if ($currently_writing != "") {
		switch($main) {
			case "CHANNEL":
				if (isset($rss_channel[$currently_writing])) {
					$rss_channel[$currently_writing] .= $data;
				} else {
					$rss_channel[$currently_writing] = $data;
				}
				break;
			case "IMAGE":
				if (isset($rss_channel[$main][$currently_writing])) {
					$rss_channel[$main][$currently_writing] .= $data;
				} else {
					$rss_channel[$main][$currently_writing] = $data;
				}
				break;
			case "ITEMS":
				if (isset($rss_channel[$main][$item_counter][$currently_writing]))
				{
					$rss_channel[$main][$item_counter][$currently_writing] .= $data;
				} else {
					//print ("rss_channel[$main][$item_counter][$currently_writing] = $data<br>");
					$rss_channel[$main][$item_counter][$currently_writing] = $data;
				}
				break;
		}
	}
}
?>